const express=require('express');
let router_admin=express.Router();
let config=require('../../config');
let common=require('../../libs/common');

// 所有进入admin相关的页面之前，都要校验身份-如果没登录 登录（/admin/login）

router_admin.use((req,res,next)=>{
    if(!req.session['admin_ID'] && req.url!='/login'){
        res.redirect('/admin/login');       //redirect重定向
    }else{
        next();
    }
})
// 请求login页面
router_admin.get('/login',(req,res)=>{
    res.render('login',{err_msg:''});
})
// 请求login接口
router_admin.post('/login',(req,res)=>{
    // 管理员分超级管理员和普通管理员  超级管理员和普通管理的数据结构不一样  所以单另出来
    // 超级管理员只存在一个  放数据库的话浪费资源  所以单独放在一个文件夹里进行操作
    let {username,password}=req.body;
    if(username==config.root_user){
        if(common.md5(password)==config.root_password){
            console.log('超级管理员已登录');
            req.session['admin_ID']='1';
            res.redirect('/admin');
        }else{
            console.log('超级管理员登录失败');
            showError('用户名或密码不正确');
        }
    }else{
        req.db.query(`SELECT * FROM admin_table WHERE username='${username}'`,(err,data)=>{
            if(err){
                showError('数据库出错，请稍后重试');
            }else if(data.length==0){
                showError('用户名或密码不正确');
            }else{
                if(data[0].password==common.md5(password)){
                    req.session['admin_ID']=data[0].ID;
                    res.redirect('/admin');
                }else{
                    showError('用户名或密码不正确');
                }
            }
        })
    }
    function showError(msg){
        res.render('login',{err_msg:msg})
    }
})
router_admin.get('/',(req,res)=>{
    res.redirect('/admin/house')
})
router_admin.get('/house',(req,res)=>{
    req.db.query('SELECT * FROM house_table',(err,data)=>{
        if(err){
            res.sendStatus(500);
        }else{
            console.log(data)
            res.render('index',{data});
        }
    })
    
})

module.exports=router_admin;